import Echarts from './charts/echarts/Echarts.vue';
import DrawerBase from './drawer/DrawerBase.vue';
// // dialog
import DialogBase from './dialog/DialogBase.vue';
import DialogCollaborate from './dialog/DialogCollaborate.vue';
import DialogConfirm from './dialog/DialogConfirm.vue';
import DialogConfirmDelete from './dialog/DialogConfirmDelete.vue';
import DialogConfirmRecall from './dialog/DialogConfirmRecall.vue';
import DialogImport from './dialog/DialogImport.vue';
import DialogFailed from './dialog/DialogFailed.vue';
import DialogTablePageTransfer from './dialog/DialogTablePageTransfer.vue';
import DialogUpload from './dialog/DialogUpload.vue';

// button
import ButtonBase from './button/ButtonBase.vue';
import ButtonList from './button/ButtonList.vue';
// switch
import SwitchBase from './switch/SwitchBase.vue';

// page
import TablePage from './page/TablePage.vue';
import TablePageVir from './page/TablePageVir.vue';
import Pagination from './pagination/index.vue'; // 分页

// table
import TableBase from './table/TableBase.vue';
import TableBaseVir from './table/TableBaseVir.vue';
import TableMultipleTag from './table/components/TableMultipleTag.vue';

// form
import FormBase from './form/FormBase.vue';

// tree
import TreeBase from './tree/TreeBase.vue';
import TagTree from './tree/TagTree.vue';
import TreeSelect from './tree/TreeSelect.vue';

// upload
import UploadBase from './upload/UploadBase.vue';
import UploadButton from './upload/UploadButton.vue';
import UploadImage from './upload/UploadImage.vue';
import UploadImageList from './upload/UploadImageList.vue';
import UploadDrag from './upload/UploadDrag.vue';

// date
import DateBase from './date/DateBase.vue';
import DateRange from './date/DateRange.vue';

// 基础组件
import InputBase from './input/InputBase.vue';
import InputNumber from './input/InputNumber.vue';
import SelectBase from './select/SelectBase.vue';
import TagBase from './tag/TagBase.vue';
import StatusBase from './status/StatusBase.vue';
import TagList from './tag/TagList.vue';
import RadioBase from './radio/RadioBase.vue';
import CheckboxBase from './checkbox/CheckboxBase.vue';
import SignBase from './sign/SignBase.vue';
import SignDrawing from './sign/SignDrawing.vue';

// 布局组件
import Card from './card/CardBase.vue';
import Title from './title/Title.vue';
import BackHeader from './page-header/BackHeader.vue';

// 功能组件
import ApproveProcess from './public-pages/approve-page/components/ApproveProcess.vue';
import TreeTransfer from './tree/TreeTransfer.vue';

// 页面组件
// import forgetPassword from './public-pages/forget-password/index.vue'
import ApprovePage from './public-pages/approve-page/index.vue';

export default {
  install(app) {
    app.component('op-echart', Echarts);

    app.component('op-drawer', DrawerBase);
    app.component('op-dialog', DialogBase);
    app.component('op-dialog-collaborate', DialogCollaborate);
    app.component('op-dialog-confirm', DialogConfirm);
    app.component('op-dialog-confirm-delete', DialogConfirmDelete);
    app.component('op-dialog-confirm-recall', DialogConfirmRecall);
    app.component('op-dialog-import', DialogImport);
    app.component('op-dialog-failed', DialogFailed);
    app.component('op-dialog-table-page-transfer', DialogTablePageTransfer);
    app.component('op-dialog-upload', DialogUpload);

    app.component('op-button', ButtonBase);
    app.component('op-switch', SwitchBase);
    app.component('op-button-list', ButtonList);

    app.component('op-table-page', TablePage);
    app.component('op-table-page-vir', TablePageVir);
    app.component('op-pagination', Pagination);

    app.component('op-table', TableBase);
    app.component('op-table-vir', TableBaseVir);

    app.component('op-table-multiple-tag', TableMultipleTag);

    app.component('op-form', FormBase);

    app.component('op-date', DateBase);
    app.component('op-date-range', DateRange);

    app.component('op-input', InputBase);
    app.component('op-input-num', InputNumber);
    app.component('op-select', SelectBase);
    app.component('op-tag', TagBase);
    app.component('op-status', StatusBase);
    app.component('op-tag-list', TagList);
    app.component('op-radio', RadioBase);
    app.component('op-check', CheckboxBase);
    app.component('op-sign', SignBase);
    app.component('op-sign-drawing', SignDrawing);

    app.component('op-card', Card);
    app.component('op-title', Title);
    app.component('op-upload', UploadBase);
    app.component('op-upload-button', UploadButton);
    app.component('op-upload-image', UploadImage);
    app.component('op-upload-image-list', UploadImageList);
    app.component('op-upload-drag', UploadDrag);

    app.component('op-back-header', BackHeader);
    app.component('op-tree', TreeBase);
    app.component('op-tag-tree', TagTree);
    app.component('op-tree-transfer', TreeTransfer);
    app.component('op-tree-select', TreeSelect);

    // app.component('op-forget-password', forgetPassword);
    app.component('op-approve-process', ApproveProcess);
    app.component('op-approve-page', ApprovePage);
  },
};
